package pojo;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.lang.Nullable;

import javax.annotation.Resource;

public class People {
//    可以在属性上使用，也可以在set上使用 可以不编写set方法
//    显式定义了Autowired的required属性为false，说明这个对象可以为空，否则不允许为空
    @Autowired(required = false)//默认先按类型装配
    private Dog dog;
//    先按照名字找，再按照类找
    @Resource(name = "cat")
    @Autowired
//    创建了多个类之后默认只会对应id为cat的那个对象
    @Qualifier(value = "cat")
    private Cat cat;

    private String name;

//        用@Nullable构造器不注入也不报错

    public People(Dog dog, Cat cat,@Nullable String name) {
        this.dog = dog;
        this.cat = cat;
        this.name = name;
    }

    public Dog getDog() {
        return dog;
    }

    public Cat getCat() {
        return cat;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "People{" +
                "dog=" + dog +
                ", cat=" + cat +
                ", name='" + name + '\'' +
                '}';
    }
}
